#ifndef SPHENIX_CALORIMETER_HIT_H
#define SPHENIX_CALORIMETER_HIT_H

#include <TObject.h>
#include <TVector3.h>

class sPHENIX_CalorimeterHit : public TObject
{
 public:
  sPHENIX_CalorimeterHit();
  virtual ~sPHENIX_CalorimeterHit();
 
  // methods
  virtual void Print(Option_t* option = "") const;
 
  void Reset();
                  

  // !!!!!!!!!!!!!!!!!!!!!!!! FIX THIS GETS

  // get methods
  /// \return The energy deposit in the sensing mat   
  Double_t GetEdepSensingMat() { return fEdepSensingMat; };
  /// \return The track length in the sensing mat
  Double_t GetTrakSensingMat() { return fTrackLengthSensingMat; };
  /// \return The copy number of the cell
  Int_t GetCellCopyNo() { return fCellCopyNo; };
  /// \return The copy number of the tower
  Int_t GetTowerCopyNo() { return fTowerCopyNo; };

  // set methods
  /// \Increment energy deposit
  void AddEdep(Double_t edep){ fEdepSensingMat += edep;};
  /// \Set The energy deposit in the sensing mat 
  void SetEdepSensingMat(Double_t edep) {  fEdepSensingMat = edep; };
  /// \Set The track length in the sensing mat
  void SetTrakSensingMat(Double_t tl) {  fTrackLengthSensingMat = tl; };
  /// \Set The copy number of the cell
  void SetCellCopyNo(Int_t ccn) { fCellCopyNo = ccn; };
  /// \Set The copy number of the tower
  void SetTowerCopyNo(Int_t tcn) { fTowerCopyNo = tcn; };
      
 private:
  Double_t fEdepSensingMat;        ///< Energy deposit in the sensing material 
  Double_t fTrackLengthSensingMat; ///< Track length in the sensing material    
  Int_t    fCellCopyNo;            ///< Copy Number of Cell
  Int_t    fTowerCopyNo;           ///< Copy Number of Tower
  
  
  ClassDef(sPHENIX_CalorimeterHit,1);    //sPHENIX_CalorimeterHit  
};

#endif //SPHENIX_PHENIX_CALORIMETER_HIT_H
 
